package cn.edu.bzu.manager.computer.service;

import cn.edu.bzu.manager.computer.dao.cpu.CpuInfoDAO;
import cn.edu.bzu.manager.computer.dao.gpu.GpuInfoDAO;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 配件业务逻辑层
 *
 * @author 1923111015董寺卓
 * @since 1.8
 */

@Service
@AllArgsConstructor
public class AllComponentService {
    private final CpuInfoDAO cpuInfoDAO;
    private final GpuInfoDAO gpuInfoDAO;

    /**
     * 根据配件类型获取该类型的所有电脑配件
     *
     * @param typeId 电脑配件类型ID（例如 1：CPU、3：显卡）
     * @return 该类型所有电脑配件
     */
    public List<?> findAllComponentInfosByTypeId(Integer typeId) {
        switch (typeId) {
            case 1:
                return cpuInfoDAO.findAll();
            case 3:
                return gpuInfoDAO.findAll();
        }
        return null;
    }

    /**
     * 根据硬件类型ID和该品类下配件信息ID号获取电脑配件
     *
     * @param typeId      同上描述，电脑配件类型ID
     * @param componentId 配件信息ID
     * @return 满足硬件类型ID和配件信息ID的电脑配件
     */
    public Object findComponentInfoByTypeIdAndComponentId(Integer typeId, Integer componentId) {
        switch (typeId) {
            case 1:
                return cpuInfoDAO.findById(componentId);
            case 3:
                return gpuInfoDAO.findById(componentId);
        }
        return null;
    }
}

